package com.dcy.znoa.service.software;

import com.dcy.znoa.common.exception.BusinessException;
import com.dcy.znoa.common.util.pojo.JsonForList;
import com.dcy.znoa.controller.publiz.model.oper.AuditOperModel;
import com.dcy.znoa.controller.publiz.model.oper.BatchValidOperModel;
import com.dcy.znoa.controller.publiz.model.oper.SelectOperModel;
import com.dcy.znoa.controller.publiz.model.oper.UpdatePwdModel;
import com.dcy.znoa.domain.Oper;

import java.lang.reflect.InvocationTargetException;
import java.util.List;

public interface OperService {

    Oper getById(Long id);

    Oper getByMobile(String mobile);

    Oper save(Oper user) throws BusinessException;

    boolean verifyPassword(Long userId, String passwrod);

    List<Oper> selectUserList(Oper user);

    //pengyu add mapper分页 + total
    JsonForList queryList(SelectOperModel model) throws BusinessException, InvocationTargetException, IllegalAccessException;


    Oper update(Oper cp) throws BusinessException;

    Integer batchValid(BatchValidOperModel model);

    Integer modifyPwd(Long operId, String pwd) throws BusinessException;

    Oper updatePwd(UpdatePwdModel model) throws BusinessException, InvocationTargetException, IllegalAccessException;

    Integer top(Long operId) throws BusinessException;

    Integer audit(AuditOperModel model) throws BusinessException, InvocationTargetException, IllegalAccessException;

    Integer getBiggestDutyNo(Long dutyId) throws BusinessException;

//    public Integer getBiggestEmployeeNo(Long compId) throws BusinessException;
}
